Pilot, You Are Cleared for Launch.
preFlight is an advanced 3D printing slicer built for precision and performance. Building on the Slic3r legacy as a spiritual successor to PrusaSlicer, it offers exclusive features and a comprehensive under-the-hood overhaul, bringing the entire dependency stack up to modern standards. Given this massive modernization, preFlight has evolved beyond the constraints of the original codebase, making upstream merging irrelevant.
Based in Georgia, USA, oozeBot is a small but ambitious team currently preparing for the take-off of our Elevate line of 3D printers. preFlight is the cornerstone of the ecosystem we are building - a genuinely new option in the 3D printing space designed to benefit all makers, regardless of the hardware they use.
Visit preflight3d.com for documentation, guides, and the latest news. Check out our Feature Showcase for screenshots and community discussion.
While preFlight is open-source and free for everyone, your support helps us maintain the infrastructure, fund R&D, and keep our team in orbit. If you find value in our tools, consider contributing to the mission.
Support the preFlight Mission (via Stripe)
Windows, Linux, macOS, and Raspberry Pi.
Windows: Download the portable zip from GitHub Releases and extract. Available for x64 and ARM64. Requires the Microsoft Visual C++ Redistributable - install this first if preFlight won't launch.
macOS: Download the DMG from GitHub Releases. Requires macOS 11.0+ (Big Sur or later), Apple Silicon only. All builds are signed and notarized by Apple.
Linux: Download the AppImage from GitHub Releases, make it executable (chmod +x), and run. No installation required.
Raspberry Pi: RPi 5 running 64-bit Raspberry Pi OS (Bookworm or Trixie). Download the aarch64 .deb package from GitHub Releases.
To ensure the integrity of your installation and protect yourself, please follow these security guidelines:
- Official Downloads: Only download preFlight binaries directly from our GitHub Releases page. We do not distribute preFlight through third-party mirror sites.
- Verified Signature: All official Windows binaries are digitally signed by oozeBot, LLC using an Organization Validation (OV) Code Signing Certificate.
- Verification: Before running preFlight, right-click the
.exe, select Properties, and navigate to the Digital Signatures tab. Ensure the "Name of signer" is explicitly listed as oozeBot, LLC. - Safety First: If you receive a "Windows protected your PC" (SmartScreen) warning on a file that is not signed by oozeBot, LLC, do not run it and report the issue immediately.
- macOS Notarization: All official macOS DMGs are signed with an Apple Developer ID certificate and notarized by Apple. macOS will verify the signature and notarization automatically on first launch. If Gatekeeper warns that the app is from an unidentified developer, the DMG is not an official release.
- 3MF Security: Post-process scripts embedded in third-party 3MF files are suppressed on import (CVE-2023-47268). All 3MF extraction uses in-memory buffers, so preFlight is not affected by Zip Slip path traversal vulnerabilities.
| What You Get | The Difference |
|---|---|
| Athena Perimeter Generator | Independent overlap control no other slicer offers |
| Interlocking Perimeters | Enhanced Z-bonding without added cost or complexity |
| G-code Preprocessing | Python scripting runs in-process during slicing, not as a post-export step |
| Export to Script | Python-based export to any destination: disk, FTP, networked printers, all at once |
| CMYK+W Color Mixing | Beer-Lambert transmission physics with up to 512 palette entries |
| True 64-bit Architecture | No coordinate overflow, no silent failures |
| High Precision | Clipper2 compiled with 10-decimal high precision |
| In-Memory Processing | No temp files, ~50% less RAM usage |
| Modern Stack | C++20, Clipper2, Boost 1.90, CGAL 6.1, OpenCASCADE 7.9, Eigen 5.0 |
In Greek mythology, Athena defeated Arachne not through greater complexity, but through discipline and precision. We named our perimeter generator after her for the same reason.
Why Athena Exists
We forked Arachne to modernize it in several ways. Athena uses fixed extrusion width instead of variable and independent overlap control between perimeters. Arachne calculates overlap automatically. Athena lets you specify exactly how much perimeters overlap. It even enables negative overlap for creating gaps between perimeters.
| Setting | What It Controls | Range |
|---|---|---|
Ext. perimeter/perimeter overlap |
Gap between external wall and first internal wall | -100% to +100% |
Perimeter/perimeter overlap |
Gap between all internal perimeters | -100% to +80% |
Perimeter compression |
How aggressively perimeters narrow in tight areas |
- Positive overlap: Perimeters merge into each other (stronger bonding)
- Zero overlap: Perimeters just touch
- Negative overlap: Gap between perimeters (useful for flexible or soft materials)
- Fixed extrusion widths with variation absorbed in spacing, not width
- Predictable wall shell thickness
- Full thin wall support
- Configurable thin wall snap grid (0.001 - 0.1mm) to control width oscillation on uniform thin walls
A novel approach to layer bonding using spacing variation and compression bonding - fundamentally different from "brick layers".
How it works:
- Uses Athena's skeletal trapezoidation engine to generate interlocking shells - naturally handles narrow channels and bead count transitions
- Three bead width tiers that alternate between layers, keeping inter-shell gaps uniform
- Geometric centerline spacing for overlap bonding - no over-extrusion at shell boundaries
- All beads printed at constant layer height (no Z-axis manipulation)
Key distinction from "brick layers":
| Aspect | Brick Layers (others) | Interlocking (preFlight) |
|---|---|---|
| Mechanism | Height variation (Z-axis) | Spacing variation (X/Y axis) |
| Bead heights | Variable (half/full) | Constant |
| Bonding type | Geometric interlocking | Compression bonding |
Benefits:
- 5-15% strength increase (estimated)
- No material or time penalty at 100% strength
- Maintains dimensional accuracy (constant layer heights)
Embedded Python scripting engine with 150 APIs and full access to all slicer settings.
Run Python scripts against sliced G-code before preview and export. Pre-processing runs inside the slicing pipeline, giving scripts access to move data, layer structure, settings, and raw G-code that no external post-processor can match.
- Bundled Python 3.14 - No system Python required. Fully isolated runtime with pip support.
- Per-profile scripts - Each Print, Filament, and Printer profile gets its own Preprocessing tab with an enable toggle and ordered script list
- Motion planner data - Scripts can read distance, junction angle, acceleration, max entry speed, per-role metrics
- Fill region geometry - Region area and fill pattern name for detecting small features
- Full G-code control - Insert, rewrite, prepend, append, annotate moves with optional comments
- State isolation - Each script run snapshots and restores sys.path, sys.modules, signal handlers, and CWD
- Error reporting - Script errors surface as breadcrumb notifications with line numbers
- 19 sample scripts included - Pressure advance tuning, flow limiting, fan curves, motion optimization, and more
- Type stubs -
preFlight.pystub for autocomplete/intellisense in external editors - Security - Consent dialog required on first enable. 3MF files with script references prompt the user on load
A Python-based export pathway that hands G-code to a user-configured script for output handling.
After slicing, click "Export to Script" and preFlight passes the finished G-code to your Python script. The script receives gcode.data (a mutable list of G-code lines) and gcode.filename (the suggested output filename). What happens next is your code: save to disk, upload via FTP, send to any networked printer, or all three at once.
- Standard Python - No proprietary API.
gcode.datais a plainList[str], fully mutable - Multi-destination - A single script can output to multiple targets simultaneously
- Bundled runtime - Uses the same embedded Python interpreter as Preprocessing
- Sample scripts included - Save to folder, FTPS upload (implicit TLS, port 990), save and upload
- Type stubs -
preFlight.pystub for IDE autocomplete on theExportGCodeobject - Security - Consent dialog required on first enable. 3MF files with script references prompt the user on load
Multi-filament color blending using Beer-Lambert transmission physics.
Paint any achievable color directly onto your model. The color prediction uses Beer-Lambert transmission with a per-filament Transmission Distance (TD) so the preview adapts to the actual translucency of each spool rather than a fixed pigment-blend approximation.
- Target color solving - Enter a hex color and the optimizer searches pairwise and single-filament candidates across all ratios, scored with CIEDE2000 delta-E
- Up to 512 palette entries - Auto-generated from pure filaments, pairwise blends, tints, shades, and triples
- 16-bit state - Up to 65,535 recipes per volume (256x the upstream 8-bit limit)
- TD1S sensor integration - Measure spool translucency, write TD into the preset, and both preview and pattern-solving consume the measured value
- Eyedropper - Alt+click to pick the painted state under the cursor into the active brush slot
- Base layer lock - Lock the bottom N layers to a single filament for a uniform bottom face
- Stable palette IDs - Painted intent survives filament swaps via FNV-1a keying and runtime re-resolution
64-bit coordinate types throughout.
// PrusaSlicer/OrcaSlicer/SuperSlicer:
using coord_t = int32_t; // Overflow risk
// preFlight:
using coord_t = int64_t; // No overflow, native Clipper2Why it matters:
- 32-bit coords overflow in cross products with large coordinates
- Clipper2 uses 64-bit internally - type mismatch causes bugs
- Large print volumes can exceed 32-bit range
Zero temp files during slicing:
- No disk I/O during slicing
- ~50% less RAM (no per-line string overhead)
- Faster slicing (no file system operations)
Mixed support types on a single object.
- Paint Snug (Blue) - Strong, close contact
- Paint Grid (Orange) - Balanced strength/removal
- Paint Organic (Green) - Easy removal, delicate areas
Strong supports under critical overhangs, easy-to-remove supports elsewhere. All on one print.
A comprehensive seam management system for hiding layer start/stop points.
Nip and Tuck Seams:
Seam shaping modes that push the external perimeter inward at the seam point, creating a V-shaped channel that absorbs start/stop blobs. The first inner perimeter is automatically trimmed to accommodate the disturbance.
| Mode | Behavior |
|---|---|
| Nip/Tuck | Both start and end pushed inward - full V-notch |
| Nip | Only start pushed inward - conceals the start point |
| Tuck | Only end pushed inward - conceals the end point |
| Alt. Nip/Tuck | Alternates Nip and Tuck per layer - distributes disturbance across both sides |
Configurable notch width (1-3x extrusion width) and corner threshold angle. Automatically skipped at sharp corners where the geometry already hides the seam.
Painted Seam Alignment:
Bidirectional blending system for stable vertical and diagonal seam tracking on painted enforcer regions. Forward pass tracks diagonal seams while filtering vertex noise, backward pass straightens early-layer convergence lag.
Paint-on Seams Line Drawing Mode:
- Draw straight seam lines between points instead of painting freehand. Perfect for placing seams along edges or in straight grooves. Includes Z-axis snapping (within 5 degrees) for vertical lines.
- Minimum brush size reduced to 0.1mm
Intelligent perimeter ordering eliminates crossing travel paths:
- Centroid-based starting position for better initial grouping
- 2-opt optimization algorithm to eliminate crossing travel paths
- Adaptive iteration count scaling with group complexity
Intelligent print ordering minimizes travel:
- Concentric fill uses depth-first traversal
- Sparse infill uses union-find clustering
- 30-50% reduction in travel distance for gyroid on multi-island layers
Direct RRF integration for automatic machine limit configuration.
One-click retrieval of all machine limits directly from Duet/RRF printers:
- M566 (Jerk), M201 (Acceleration), M203 (Feedrate)
- M204 (Print/travel accel), M207 (Firmware retract)
- Junction Deviation support (Marlin M205 J)
- RepRapFirmware acceleration model
- Print time estimates that actually match reality
"Max cmd/s" column shows:
- Maximum commands per second for each extrusion role
- Which layer the maximum occurred on
- Identify bottlenecks before printing
Interactive G-code exploration for troubleshooting and analysis.
Mouse Wheel Scrubbing: Hover over the G-code window and scroll to scrub through commands in real-time. The 3D preview updates as you scroll, letting you pinpoint exactly which command produces which movement. Right-click any G-code command to instantly copy to your clipboard.
Additional Features:
- Keyboard arrow navigation (command-by-command)
- Right-click to copy any command to clipboard
- Width matched to legend for clean UI
- Top Surface Flow Reduction - Reduce flow on top layers for smoother finish
- Narrow to Athena - Narrow solid surfaces use variable-width fill instead of rectilinear, eliminating zigzag and diamond artifacts at narrow transitions
- Bridge Infill Overlap - Independent control over overlap between bridge extrusions
- Always-Synced Support Layers - Support layers perfectly align with object layers (no fractional heights)
- Variable Interface Layer Heights - Achieve desired gap through interface height adjustment, not Z-offset
- Simplified Bottom Contact - Clear options: No Gap, Half Layer, Full Layer (instead of arbitrary mm values)
- Full Manual Fan Control - Complete manual cooling control for each feature type
- Fan Spin-Up Options - Configure fan spin-up timing for precise cooling with overhang perimeters and bridge infill
- Wipe Enhancements - Improved wipe/retraction behavior
PrusaSlicer profiles import natively. OrcaSlicer profiles go through a 230+ setting mapping engine: import printer, filament, and process profiles from .orca_printer, .orca_filament, and .zip bundles via File > Import > Import OrcaSlicer Bundle. Includes key mapping with value transforms, bed temperature plate selection, G-code macro translation, and a results dialog showing imported profiles, lossy mappings, dropped settings, and G-code warnings.
Right-click any object in sliced preview to activate an interactive cross-section plane that cuts through toolpaths and shell meshes. Useful for inspecting internal structure, verifying infill patterns, and diagnosing print issues before sending to the printer.
Precise object alignment using face selection. Pick a face on the build plate object, pick a face on the tool object, and snap them together. Includes flip, proportional scale/size, depth slider, position nudge, and Shift+drag snap-to-point with visual ring indicator. Boolean weld and subtract operations for combining or cutting objects in place.
Emboss images as 3D heightmaps onto mesh surfaces. Load any image and project it as a relief with smoothing, gamma correction, and minimum thickness controls. Real-time preview with CSG subtraction shown during the slicing shell animation.
Paint-on gizmo for controlling bridge layers above counterbore holes. Paint the regions that need bridging, set a per-hole bridge layer count, and the slicer generates bridge infill only within the painted area. Fill direction follows the corridor angle for each hole independently, and the transition extends upward through the specified bridge count.
Two layout modes to suit your workflow:
- Accordion - Collapsible sections with inline settings editing. All groups visible in a single scrollable list.
- Tabbed - Traditional tabbed layout as an alternative. Toggle between modes via Preferences > GUI.
Per-option visibility checkboxes let you show or hide individual settings to keep the sidebar focused on what matters to you.
Add notes to individual objects or the entire project. Notes are persisted in 3MF files with full undo/redo support.
- Layer 0 Preview - See blank build plate before first extrusion
- Preview Slider Accelerators - Ctrl (2x), Shift (4x), Ctrl+Shift (8x) navigation
- Settings Tab Auto-Commit - Click dead space to commit fields
- Progressive Slicing Feedback - Visual feedback during slicing
- Solid Fill Pattern Selection - Choose pattern for internal solid layers
Ported from OrcaSlicer with enhancements:
- Per-ear overlap control (-100% to +100%)
- Always-visible rendering
- Full undo/redo support
Ported from OrcaSlicer with enhancements
Noise Types:
| Type | Effect |
|---|---|
| Classic | Original random displacement |
| Perlin | Smooth, organic patterns |
| Billow | Cloud-like, puffy texture |
| Ridged Multi | Sharp, jagged features |
| Voronoi | Cell-based patchwork patterns |
Advanced Controls:
- Visibility Detection - Optional skip fuzzy on top-visible surfaces
- Bottom Detection - Optional skip fuzzy on bottom layers - always skip overhangs
- Per-Perimeter Control - Limit fuzzy to external perimeters only
- Point placement - Standard or Shape following
- Fuzzy skin mode - Displacement, Extrusion, Combined
- Scale - Feature size in mm
- Octaves - Detail levels (noise complexity)
- Persistence - How much each octave contributes
| Library | Version | Notes |
|---|---|---|
| Clipper2 | 2.0.1 | Polygon clipping with native 64-bit support |
| Boost | 1.90.0 | Filesystem, logging, threading, geometry |
| CGAL | 6.1 | Computational geometry (Boost.Multiprecision backend) |
| OpenCASCADE | 7.9.3 | STEP/IGES CAD file import |
| Eigen | 5.0.0 | Linear algebra (vectors, matrices, transforms) |
| TBB | 2022.3.0 | Parallel task execution |
| NLopt | 2.10.0 | Nonlinear optimization |
| GLAD | 2.0.8 | OpenGL loader |
- GMP/MPFR - CGAL 6.x uses Boost.Multiprecision instead
- OpenCSG - Dead/unused code removed
- GLEW - Replaced with actively maintained GLAD
- C++20 compilation
- Memory leak fixes (gigabytes saved over long sessions)
- CMake 4.x ready
preFlight works with any modern 3D printer accepting RepRap-flavored G-code:
- Marlin firmware
- Prusa firmware
- RepRapFirmware (Duet)
- Klipper
- Smoothieware
- Input: STL, OBJ, 3MF, AMF, STEP
- Output: G-code for FFF printers
All platforms use a unified build system. Windows uses .bat wrappers that set up the MSVC environment, then delegate to the same underlying scripts.
Requires Visual Studio 2026 (VS 2022 is not supported)
# Build dependencies (first time only)
build_deps.bat
# Build release
build.bat
# Build debug (for development)
build.bat -debug# Prerequisites (macOS only)
brew install cmake ninja pkg-config
# Build dependencies (first time only)
./build_deps.sh
# Build release
./build.sh
# Build debug (for development)
./build.sh -debug| Flag | Description |
|---|---|
-deps |
Build dependencies (alternative to running build_deps separately) |
-debug |
Build with debug symbols (RelWithDebInfo) |
-clean |
Remove build directory and rebuild from scratch |
-config |
Run CMake configure only, skip build |
-flush |
Force resource recompilation (Windows: icons, splash) |
-jobs N |
Number of parallel build jobs (default: auto-detect) |
-arch A |
Architecture override (macOS: arm64 / x86_64) |
preFlight is licensed under the GNU Affero General Public License, version 3. See LICENSE for details.
preFlight is based on PrusaSlicer by Prusa Research, which is based on Slic3r by Alessandro Ranellucci and the RepRap community.
- Website: preflight3d.com
- Email: support@ooze.bot
- GitHub Issues: github.com/oozebot/preFlight/issues
preFlight - Precision where it matters.

